gsk: Take scale factor into account when setting up the gl scissor
authorAlexander Larsson <alexl@redhat.com>
Mon, 20 Mar 2017 09:52:58 +0000 (10:52 +0100)
committerAlexander Larsson <alexl@redhat.com>
Mon, 20 Mar 2017 09:53:58 +0000 (10:53 +0100)
gsk/gskglrenderer.c

index deeabbceab4098aa6358c73f1cbc0ec5b1a188d4..d3236672566cf41e2cf99a9e45012649602d9ce0 100644 (file)
@@ -908,8 +908,13 @@ gsk_gl_renderer_setup_render_mode (GskGLRenderer *self)
         GdkDrawingContext *context = gsk_renderer_get_drawing_context (GSK_RENDERER (self));
         GdkWindow *window = gsk_renderer_get_window (GSK_RENDERER (self));
         GdkRectangle extents;
+        int scale_factor = gsk_renderer_get_scale_factor (GSK_RENDERER (self));
+
         cairo_region_get_extents (gdk_drawing_context_get_clip (context), &extents);
-        glScissor (extents.x, gdk_window_get_height (window) - extents.height - extents.y, extents.width, extents.height);
+
+        glScissor (extents.x * scale_factor,
+                   (gdk_window_get_height (window) - extents.height - extents.y) * scale_factor,
+                   extents.width * scale_factor, extents.height * scale_factor);
         glEnable (GL_SCISSOR_TEST);
         break;
       }